#!/usr/bin/env bash

#镜像命令相关
docker search tomcat #搜索镜像
docker pull tomcat #拉取镜像
docker images #查看所有镜像
##删除镜像 -f, -force: 强制删除镜像，即便有容器引用该镜像；-no-prune: 不要删除未带标签的父镜像
docker rmi 容器
docker image rm 容器
#清理镜像 -a, --all: 删除所有没有用的镜像，而不仅仅是临时文件；-f, --force：强制删除镜像文件，无需弹出提示确认；
docker image prune


#查看容器相关
docker ps #表示查看当前正在运行的容器
docker ps -a #查看所有容器包括停止状态的容器
docker ps -l #查看最新创建的容器
docker ps -n=x #查看最后创建的x个容器
docker stop 容器ID #停止容器
docker rm 容器ID #我们不能删除一个正在运行的容器，必须先docker stop或者docker kill后我们才能删除
docker rm -f 容器ID #强制删除容器 
#如过再次启动有提示该容器的名字已经存在，那么内部网络可能没有释放导致的，执行下面命令
docker network disconnect-f bridge 容器名字

docker rename oldName newName #容器重命名
docker inspect 容器id或者名字 #获取容器/镜像的元数据。

docker logs 容器名 #查看docker容器日志
docker logs -f logstash #实时查看docker容器日志
docker logs -f -t --tail 行数 容器名 #实时查看docker容器日志

docker exec -it 容器id /bin/bash #进入容器
-it #这是2个参数。-i：#保持标准输入打开，默认为 false；-t：#分配一个伪终端，默认为 false

#将容器7163eb11533c的/etc/mysql/my.cnf目录拷贝到主机的目录中。
docker cp 7163eb11533c:/etc/mysql/my.cnf /home/work/docker_md/mysql/conf/my.cnf
#将主机的/etc/mysql/my.cnf目录拷贝到容器7163eb11533c的目录中。
docker cp /home/work/docker_md/mysql/conf/my.cnf 7163eb11533c:/etc/mysql/my.cnf

#停止所有docker容器
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)



docker run  # 容器启动命令
-d   #后台启动
--rm #容器退出自动删除，--rm不能与--restart同时用，-d 与--rm同时使用rm优先级低，不能作用在-d的容器上
--name nexus  #容器命名
-p 8081:8081  #宿主机映射端口：容器端口
--restart=always #容器重启策略
--privileged=true #container内的root拥有真正的root权限,否则，container内的root只是外部的一个普通用户权限
-v /home/docker/nexus/data:/nexus-data       ## 容器数据卷挂载 宿主器绝对路径：容器绝对路径
sonatype/nexus3                              ## 指定容器启动所用镜像